package controller

import (
	"gitee.com/jiebaiyou/formflow/model"
	"gitee.com/jiebaiyou/formflow/pkg/bizcode"
	"gitee.com/jiebaiyou/formflow/pkg/response"
	"github.com/gin-gonic/gin"
)

// ProfileController 处理用户档案相关的HTTP请求
// 它依赖于ProfileService接口来实现用户档案的业务逻辑
type ProfileController struct {
	ProfileService model.ProfileService // 用户档案业务逻辑接口
}

// Fetch 获取当前已认证用户的档案信息
func (pc *ProfileController) Fetch(c *gin.Context) {
	// 从请求上下文中获取用户ID, 这通常由认证中间件设置
	userID := c.GetString("x-user-id")

	// 通过用户ID获取用户的档案信息
	profile, err := pc.ProfileService.GetProfileByID(c, userID)
	if err != nil {
		// 如果获取档案信息失败, 返回500服务器内部错误
		response.ServerError(c, bizcode.GetProfileFailed.String(), err)
		return
	}

	// 返回成功响应和用户档案信息
	response.OK(c, bizcode.Success.String(), profile)
}
